package com.demo.inboundhandlerandoutboundhandler.client;

import com.demo.inboundhandlerandoutboundhandler.codec.MyByteToLongDecoder2;
import com.demo.inboundhandlerandoutboundhandler.codec.MyLongToByteEncoder;
import com.demo.inboundhandlerandoutboundhandler.codec.MyByteToLongDecoder;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;

/**
 * @author gy
 * @date 2022/7/31
 */
public class MyClientInitializer extends ChannelInitializer<SocketChannel> {

    @Override
    protected void initChannel(SocketChannel ch) throws Exception {

        ChannelPipeline pipeline = ch.pipeline();

        // 加入一个出站的handler 对数据进行一个编码 2
        pipeline.addLast(new MyLongToByteEncoder());

        // 客户端在接收 服务端发送过来的 数据时 需要一个 解码器  加入一个入站的解码器（同样属于handler）
//        pipeline.addLast(new MyByteToLongDecoder());
        pipeline.addLast(new MyByteToLongDecoder2());

        // 加入一个自定义的handler，处理业务 1
        pipeline.addLast(new MyClientHandler());
    }
}
